<?php
    /**
    * 描述：应用程序全局设置。
    */
    $appConfig=include('_config/app.php');
    ini_set('date.timezone',$appConfig['DatetimeZone']);             //时区设置。
    //set_time_limit($appConfig['ScriptTimeLimit']);                   //脚本超时设置，0就是永不超时。
    header("content-type:text/html;charset=".$appConfig['Charset']); //页面编码设置。   
    
    /**
    * 描述：应用错误异常处理设置。
    */
    if($appConfig['Debug']!==TRUE){
        function exceptionHandler($exception=NULL) {
            DB::Insert('$error',array(
                'App'=>APP_NAME,
                'Type'=>'exception',
                'Code'=>$exception->getCode(),
                'Message'=>$exception->getMessage(),
                'File'=>$exception->getFile(),
                'Line'=>$exception->getLine(),
                'Memo'=>$exception->getTraceAsString(),
                'Datetime'=>date('Y-m-d H:m:s')
            ));
            header('HTTP/1.0 500 Server Error.');
        }
        function errorHandler($errno,$errstr,$errfile,$errline){
            DB::Insert('$error',array(
                'App'=>APP_NAME,
                'Type'=>'error',
                'Code'=>$errno,
                'Message'=>$errstr,
                'File'=>$errfile,
                'Line'=>$errline,
                'Datetime'=>date('Y-m-d H:m:s')
            ));
        }    
        set_exception_handler('exceptionHandler');
        set_error_handler('errorHandler');
    }    
    
    /**
    * 描述：注册代理功能类。
    */
    function Import_Agent($name){
        switch($name){
            case 'DB':
                include_once(BUILD_ROOT.'/apps/db.php');
            break;                         
            case 'Template':
                include_once(BUILD_ROOT.'/apps/template.php');
            break;                         
            case 'Xheditor':
                include_once(BUILD_ROOT.'/apps/xheditor.php');
            break;                         
            case 'Route':
                include_once(BUILD_ROOT.'/apps/route.php');
            break;                         
        }
    }
    spl_autoload_register('Import_Agent');   
    
    /**
    * 描述：注册应用共享控制器。
    */
    function Import_Controller($name){
        switch($name){
            case 'Controller_Security':
                include_once(APP_ROOT.'/_controller/_security.php');
            break;                         
        }
    }
    spl_autoload_register('Import_Controller');   
    
    /**
    * 描述：注册应用模型。
    */
    function Import_Model($name){
        switch($name){            
            case 'Model_Account':
                include_once(APP_ROOT.'/_model/account.php');
            break;                   
            case 'Model_Permission':
                include_once(APP_ROOT.'/_model/permission.php');
            break;          
        }
    }
    spl_autoload_register('Import_Model');      
    
    /**
    * 描述：注册xlibrary类库。
    */
    function Import_XLibrary($name){
        switch ($name){                       
            case 'Functions':
                include_once(BUILD_ROOT.'/public/xlibrary/function.php');                    //函数库
            break;            
            case 'Smarty':                                            
                include_once(BUILD_ROOT.'/public/xlibrary/package/smarty/smarty.class.php'); //Smarty类库
            break;            
            case 'Captcha':
                include_once(BUILD_ROOT.'/public/xlibrary/package/captcha/2/captcha.php');   //验证码类SimpleCaptcha
            break;            
            case 'Upload':
                include_once(BUILD_ROOT.'/public/xlibrary/upload.php');                      //上传类            
            case 'Folder':
                include_once(BUILD_ROOT.'/public/xlibrary/folder.php');                      //文件操作-文件夹
            break;            
            case 'Session':                                                        
                include_once(BUILD_ROOT.'/public/xlibrary/session.php');                     //session操作
            break;            
            case 'Cookie':                                                        
                include_once(BUILD_ROOT.'/public/xlibrary/cookie.php');                      //Cookie操作类
            break;            
            case 'Email':                                                                
                include_once(BUILD_ROOT.'/public/xlibrary/email.php');                       //发送邮件类
            break;            
            case 'EPDO':
                include_once(BUILD_ROOT.'/public/xlibrary/epdo.php');
            break;         
            case 'Name':
                include_once(BUILD_ROOT.'/public/xlibrary/package/name/name.php');           //名称类库
            break;
            case 'NameFactory':
                include_once(BUILD_ROOT.'/public/xlibrary/package/name/factory.php');
            break;
            case 'Name_Linear':
                include_once(BUILD_ROOT.'/public/xlibrary/package/name/linear.php');
            break;
        }        
    }
    spl_autoload_register('Import_XLibrary');    
?>    